package cn.edu.zafu.bigdata.linfeifei.g;
//11.12题目2：写入并读取文本文件
// 描述：
// 编写一个程序，将用户输入的文本保存到一个文件中（files目录下的学号文本文件，如files/2022010101.txt），然后读取并显示文件的内容。
// 具体要求：
// 写入文件：创建一个方法writeToFile(String fileName, String content)，将用户输入的文本写入到指定的文件中。
// 读取文件：创建一个方法readFromFile(String fileName)，读取文件内容并将其打印到控制台。
// 测试：在main方法中，提示用户输入文本，将其写入文件，然后读取并显示文件内容。
import java.io.*;
import java.util.Scanner;

public class TextFileOperations {

    // 将用户输入的文本写入到指定的文件中
    public static void writeToFile(String fileName, String content) {
        try (BufferedWriter writer = new BufferedWriter(new FileWriter(fileName))) {
            writer.write(content);
            System.out.println("文件写入成功！");
        } catch (IOException e) {
            System.out.println("文件写入失败：" + e.getMessage());
        }
    }

    // 读取文件内容并将其打印到控制台
    public static void readFromFile(String fileName) {
        try (BufferedReader reader = new BufferedReader(new FileReader(fileName))) {
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }
        } catch (FileNotFoundException e) {
            System.out.println("文件未找到：" + e.getMessage());
        } catch (IOException e) {
            System.out.println("读取文件失败：" + e.getMessage());
        }
    }

    // 主方法，用于测试写入和读取文件的功能
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入您的学号（例如：2022010101）：");
        String studentId = scanner.nextLine();
        String fileName = "files/" + studentId + ".txt"; // 根据学号创建文件名

        System.out.println("请输入要保存到文件的文本：");
        String content = scanner.nextLine(); // 获取用户输入的文本

        // 将用户输入的文本写入文件
        writeToFile(fileName, content);

        // 读取文件并显示内容
        System.out.println("文件内容如下：");
        readFromFile(fileName);

        scanner.close();
    }
}
